前回はStageパッケージを確認した。今回はSceneパッケージを見ていく。
■ Sceneパッケージに属するクラス
まずはSceneパッケージに属する主要なクラスを見ていく。ただし、Scene.Nodeクラスの子クラスはScene Graphにあたるクラスになるため、ここでは言及しない。Stageパッケージと同様こちらもクラス数は少なく、使いそうなものはマウス・カーソル程度しかない。(
*1)
クラス名 |
内容 |
Scene |
シーンクラス。背景色や表示領域を決定する |
Cursor |
マウス・カーソルを表すクラス。選択できるマウス・カーソルはコチラを参照のこと |
ImageCursor |
マウス・カーソルを表すクラス。Cursorクラスとは異なり、カーソル画像をプログラマが指定できる |
カーソルを変更するサンプルプログラムは以下の通り。
フォルダ構成
TestJavaFX
┣src
┃┗application_fx
┃ ┗TestScene.java
┗img
┗cursor.png
package application_fx;
import java.io.File;
import javafx.application.Application;
import javafx.scene.ImageCursor;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class TestScene extends Application {
@Override
public void start(Stage mainStage) throws Exception
{
// シーングラフ作成
Label l = new Label( "Sceneパッケージテスト" );
// シーン作成
Scene scene = new Scene( l , 400 , 200 , Color.WHITE );
// マウスカーソル変更
// ホットスポット(カーソルが指す座標)を指定して、カーソルを作成
String uri = new File("img/cursor.png").toURI().toString();
Image img = new Image( uri );
ImageCursor cursor = new ImageCursor( img , img.getWidth() / 2 , img.getHeight() );
scene.setCursor( cursor );
// ステージ設定・ウィンドウ表示
mainStage.setScene( scene );
mainStage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
カーソル画像(cursor.png)
実行結果
以下、ソースコードの説明。
28行目で画像カーソルを生成している。第1引数はカーソルに指定する画像である。第2引数と第3引数はホットスポットの座標を指定する。ホットスポットとは『クリックしたときに、クリックされたとみなされる位置』である。よくある矢印カーソルで言えば、矢印の先のこと。今回は電球の電極部分の先端を設定している。
■ 参照
- JavaDoc - Hierarchy For Package javafx.scene